thumbnail 一問一答の一歩

phpmyadmin内のテーブルを開くとMySQLが強制終了する場合の直し方

WordPressで本サイトを作成中にphpmyadmin内にあるのテ-ブルを開こうとするとMYSQLが強制終了するようになってしまった。私はWordpressのデータベースはXAMPを使用しているため、MySQLを起動させた瞬間に強制終了すること自体は時々あるが、それらの対する修理方法であるポート番号の変更やXAMPPファイルの修復、対処では上手くいかなかった。

MySQLを起動させた瞬間に強制終了してphpmyadminがそもそも開けない場合は、本ページの説明対象外であるので、以下のサイトを参照すると良い。

思考錯誤をしながら調べてみると、恐らくテ-ブル内の情報構造や設計(つまり概念スキーマ)がおかしくなったと想像できる。

概念スキーマ設計ミスが発生すると、テーブル内の設計がおかしくなる。そのため、デ-タを編集しようにもテ-ブルを削除しようにもテ-ブルを開いた瞬間当然エラーで強制終了してしまう。つまり、データを開いて直すことが出来ない状況になってしまった。ここでは、その時の解決方法を以下の構成にで記載する。

  1. ワ-クブック内の不要なファイルを削除する
  2. バックアップされているテ-ブルを復元する

なお、この方法は、テーブルのバックアップをとっていることいることを前提とする。

(一つづつバックアップしていることがベストではあるが、全テ-ブルのバックアップからでもおそらくできる)

1.ワ-クブック内の不要なファイルを削除する。

xampのコントロールパネルのブラウザを開く

すると、多数の拡張子がfrmとibdのファイルが現れるはずである。詳細を調べきることはできなかったが、この2つのファイルに概念スキーマが含まれているらしい。

data\直したいデータベース名\壊れたテーブル名.ibdをデスクトップなり他の場所に移動する。

ibdファイルを移動

phpmyadminを開き、該当テーブルが開けるようになっているはずなので、「操作」を押してから、「テーブルを削除する」を選択する。

削除を洗濯

ブラウザに戻り、該当するテーブルのfrmファイルとibdファイルがともになくなっていることを確認する

2.バックアップされているテ-ブルを復元する

このままwrodpressを開いても、エラーになる可能性があるので、バックアップした表を復元する

インポートを選択し、ファイルを選択するから該当するsqlファイルを選択してインポートする

SQLファイルをインポートする

補足 データベースを入れようとしたら消したはずのDBが残っている場合

似たような概念スキーマ設計のミスで、データベースを入れようとしたら消したはずのDBが残っており消すことができない状況にもあたったのでその状況、及び対処についてのリンクを乗せる。

問題ページに戻る